package com.xbongbong.paas.service;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.outLink.domain.entity.OuterLinkEntity;
import com.xbongbong.paas.pojo.dto.OuterLinkAddDTO;
import com.xbongbong.paas.pojo.dto.OuterLinkAddGetDTO;
import com.xbongbong.paas.pojo.dto.OuterLinkBaseDTO;
import com.xbongbong.paas.pojo.dto.OuterLinkListDTO;
import com.xbongbong.paas.pojo.vo.FormDataAddGetVO;
import com.xbongbong.paas.pojo.vo.FormDataAddVO;
import com.xbongbong.paas.pojo.vo.FormDataUpdateGetVO;
import com.xbongbong.paas.pojo.vo.PaasFormDataEsListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;

/**
 * @author long.rao
 * @version v1.0
 * @date 2020/8/10 10:52
 * @since v1.0
 */
public interface OuterLinkService {

    PaasFormDataEsListVO getList(OuterLinkListDTO outerLinkDTO) throws XbbException;

    FormDataUpdateGetVO get(OuterLinkBaseDTO outerLinkBaseDTO) throws XbbException;

    /**
     * 保存数据
     * @param outerLinkAddDTO
     * @return
     * @throws XbbException
     */
    FormDataAddVO add(OuterLinkAddDTO outerLinkAddDTO) throws XbbException ;

    /**
     * 在新建时，返回初始化字段属性和数据（流水号等）
     * @param outerLinkAddGetDTO
     * @return
     * @throws XbbException
     */
    FormDataAddGetVO addGet(OuterLinkAddGetDTO outerLinkAddGetDTO) throws XbbException;

    /**
     * 校验并解析token 解析出businessType corpid formId
     * @param
     * @param token
     * @param
     * @throws XbbException
     */
    public OuterLinkEntity getTokenByType(String token, Integer type) throws XbbException;
}
